/*
    This file is part of Lua Invoke.
    Copyright 2005-2007 Rafael de Oliveira Jannone <rafael@jannone.org>

    Lua Invoke is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.

    Foobar is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

/* invoke module API */

#ifndef INVOKE_H
#define INVOKE_H

#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>

#ifdef WIN32

#include "port_win32.h"

#else

#define LUAMODULE_API

#endif

#define MYNAME		"invoke"
#define MYVERSION	MYNAME " library for " LUA_VERSION " / Sep 2005 / "
#define MYTYPE		MYNAME " context"

/* here we define LL as the type with maximum size for a return value.
	that's "long long" on x86 architecture (yes, double is the same size as long long).
	it also gives us a good granularity over stack copies.  see Lcall.
*/
typedef unsigned long long LL;	

/* some convenience defines */
#define true 1
#define false 0
#define bool int

LUAMODULE_API int 
luaLM_import(lua_State* L);

LUAMODULE_API const char* 
luaLM_version();

LUAMODULE_API int 
luaopen_invoke(lua_State *L);

#endif

